System and Method for Processing Product Orders

ABSTRACT

A method of processing a product order is disclosed. The method includes receiving a product order from a consumer and selecting a fulfiller to fulfill the product order. A system for processing a product order is also disclosed.

This disclosure claims priority under 35 U.S.C. 119(e) to U.S.Provisional Application No. 60/318,940 which was filed Sep. 11, 2001 andis hereby incorporated by reference herein.

FIELD OF THE DISCLOSURE

This disclosure relates to the marketing and sale of products via anetwork, such as the internet. It is disclosed in the context of certainembodiments and utilities, but is believed to be useful in otherapplications as well.

BACKGROUND OF THE DISCLOSURE

Methods utilizing computers to sell products, for example, sellingproducts via a network, such as the internet, are in widespread use.Traditionally, products are distributed from a manufacturer to aconsumer through a series of intermediaries, each which has a particularbusiness function. The most common intermediaries are known as“distributors” and “retailers”. Distributors purchase products in largequantities from manufacturers and resell the products in smallerquantities to retailers. Retailers, in turn, resell the products toconsumers. In addition to selling products to consumers, retailers mayalso provide additional services, such as purchase advice and technicalsupport. These services are typically not provided by manufacturers ordistributors.

Generally, distributors and retailers carry products from severalmanufacturers. Usually, but not always, distributors operate at anational level, while retailers operate at a local level. A retailer mayplace an order with a distributor for products from a variety ofmanufacturers, which may be sent as a single shipment. This reduces theoverall cost of shipping. In some industries, the line betweendistributors and retailers is blurred. Some distributors sell directlyto consumers, and some retailers purchase directly from manufacturers.Therefore, hereinafter the terms “distributor” and “retailer” will beused interchangeably to describe all intermediaries.

Retailers benefit from the traditional method of distribution becausethey can purchase a variety of products from different manufacturerswithout contacting each manufacturer directly to arrange individualproduct shipments. Manufacturers benefit because they can ship theirproducts in bulk without dealing with a multitude of retailers eachhaving its own purchase and shipment policies and unknown risk ofnon-payment.

The fundamental rules of business require intermediaries to increase theprice of goods they handle in order to cover their business expenses andcreate a profit margin. Manufacturers who sell through distributors andretailers generally offer a discounted price to distributors andretailers to cover expenses and profit thereby lowering their own profitmargin. Without distributors and retailers, manufacturer would command ahigher price for their goods and consumers would pay less. Bothmanufacturers and consumers would prefer to work directly togetherwhenever practical in order to maximize manufacturer profits andminimize the consumer costs.

The realities of business, however, have until recently preventedmanufacturers and consumers from working closely together. Historically,it has not been possible to easily distinguish between consumers whoneed only the products and services offered by the manufacturer andthose who need additional products and services offered by the retaileruntil after significant time has been spent by the retailer with theconsumer. In addition, the cost of performing the traditional customerservice functions of a retailer often outweigh the additional profitmargin to the manufacturer gained by selling directly to the consumer.As a consequence, manufacturers tend to work primarily with distributorsand retailers, and forgo the profit potential of consumer direct sales.

Further, selling directly to consumers can alienate local retailers thatbecome aware of the manufacturer's direct marketing efforts, and are aptto view the manufacturer as a serious competitor instead of a businessally. Distributors and retailers, therefore, tend to avoid manufacturerswith significant consumer direct sales. As a result, manufacturers tendto work primarily with distributors and retailers rather than risklosing their traditional distribution network.

Global networks, such as the internet, have revolutionized business byallowing manufacturers to communicate directly with consumers at verylow cost. Consumers can order products directly from manufacturers, andmanufacturers can fill these orders by shipping directly to theconsumers. The problem remains, however, that dealing with all consumersdirectly is too expensive and too risky for most manufacturers. Inaddition, consumers continue to face the problem that ordering andshipping from multiple manufacturers is frequently more expensive andless convenient than purchasing from a single local retailer.

Some data interchange systems have been developed to link manufacturers,distributors and retailers so that information regarding orders fromconsumers can be shared electronically. These electronic and computersoftware systems link the computer databases of the manufacturers,distributors and retailers so they can share information including, forinstance, inventory levels, product specifications, and expectedshipping times. However, these prior art integrated systems are complexand expensive, so their use has been limited to relatively largecompanies. Therefore, small retailers, having no affordable, automaticsystem for snaring such information with distributors and manufacturers,are left to fill orders manually by traditional methods.

What is needed is a simple, automatic system which can identify whetheran individual consumer is best suited to deal directly with amanufacturer or with a retailer, while additionally identifying the bestmethod for distribution to minimize the final cost to the consumer,without disrupting the traditional distribution network already inplace.

SUMMARY OF THE DISCLOSURE

In one illustrative embodiment of the present disclosure, a system andmethod for processing a product order includes multiple entry points forat least one consumer to place a product order.

According to one aspect of this embodiment, the system allows amanufacturer to either fill a product order or allow a number ofretailers to fill the product order.

Further according to this aspect of this embodiment, when a manufacturerdecides to allow a number of retailers to fill an order, informationdescribing the order is “posted” on a web page that is accessible to theretailers. The web page allows the retailers to “bid” on (agree tofulfill the order for a predetermined order price) the order.

Further according to this aspect of this embodiment, if more than oneretailer bids on an order, the system selects one retailer to fill theorder, and, in some cases, confirms the transaction with the consumerand the selected retailer.

Retailer selection is based on multiple criteria including, forinstance, geography, industry preferences, manufacturer preferences, andthe number of orders previously filled by the respective retailer. Thefirst selection criterion considered by the system is the ability of theretailer to ship the order complete (without backordering items). Then,based on geography, the system assigns the order to the closest retailerwhich bids on the order and which can fulfill the complete order.Manufacturers have the ability to deny specific retailers the chance towin an order in bidding based on the manufacturer's preferences.

In another illustrative embodiment of the present disclosure, a systemfor processing a product order operates independently from manufacturersand retailers.

According to one aspect of this embodiment, the system may select acombination of products from different manufacturers.

According to another aspect of this embodiment, the system may selectAny retailer to fill an order.

In another illustrative embodiment of the present disclosure, a systemfor processing a product order includes centralized financial functionsto electronically transfer payment from the consumer to themanufacturer, and to extract administrative and transaction fees afterthe order has been processed.

In another illustrative embodiment of the present disclosure, a systemfor processing a product order includes a centralized mechanism forconnecting a number of manufacturers, distributors, retailers andconsumers, without requiring integration of the computer databases ofthe manufacturers, distributors, retailers or consumers.

In another illustrative embodiment of the present disclosure, a systemfor processing a product order provides a mechanism and method forgenerating information regarding consumer qualifications.

According to one aspect of this embodiment, the system determines apreferred method for filling an order for goods and/or services via atleast one retailer.

In another illustrative embodiment of the present disclosure, a systemfor processing a product order provides a number of retailers with anopportunity to indicate a desire to fill consumer product orders thatare directed to the retailers by a manufacturer.

In another illustrative embodiment of the present disclosure, a systemfor processing a product order provides for orders to be sent to thesystem from outside manufacturers by electronic sending. Orders can besent in a specific format to the system without integration to themanufacturer. According to one aspect of this embodiment, the system canaccept orders from member manufacturers and place those orders in thesystem for retailers to fulfill.

In another illustrative embodiment of the present disclosure, a systemfor processing a product order provides for orders that are waiting forfulfillment to be sent to member retailers based on retailerpreferences.

According to one aspect of this embodiment the system can push orders tospecific retailers based on the retailer's preferences in the system andtheir order history with the manufacturer.

According to another aspect of this embodiment the system can predictwhich retailers can fulfill the order and send the order to the retailerfor acceptance and fulfillment.

In another illustrative embodiment of the present disclosure, a systemfor processing a product order provides for income redistribution onspecific products of an order.

According to one aspect of this embodiment the system can collect afixed percentage of a total product cost and credit that amount to aspecific retailer based on that retailer's ability to fulfill an orderfor a manufacturer.

According to another aspect of this embodiment the system allows amanufacturer to set the redistribution percentage for each product theirown product line as it is ordered.

Further uses of the present disclosure will become apparent to personsskilled in the art to Which the disclosure relates upon reading thefollowing detailed description of an illustrative embodiment.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure may best be understood with reference to the followingdetailed description and accompanying drawings which illustrate thedisclosure. In the drawings:

FIG. 1 illustrates a group of computers implementing a system;

FIG. 2 illustrates a high level method of product distribution; and

FIGS. 3-27 illustrate a method of product distribution.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

Turning now particularly to FIG. 1, an order facilitator server machine(or simply “facilitator server”) 1002 of a shopping service is coupledto network 1004. Network 1004 could be, for example, a publiclyaccessible global network, such as the Internet. A consumer accesses thesystem of the present disclosure as user 2006 via user client machine1006. User client machine 1006 is coupled to network 1004. A distributoror a retailer accesses the system of the present disclosure as fulfiller2008 via fulfiller client machine 1008 or 1010. Fulfiller clients 1008and 1010 are coupled to network 1004. Clients 1006-1010 includesoftware, such as a web browser, which enables them to process scriptlanguages and/or meta languages.

Manufacturer server machine 1012 interacts with client machines 1006 and1008 to offer products for sale. However, when user 2006 selects aproduct for ordering, client machine 1006 or 1008 is redirected frommanufacturer server 1012 to facilitator server 1002. Manufacturer server1012 provides information to facilitator server 1002 regarding theorder, such as, for example, the product to be ordered or informationpertaining to user 2006. After client 1006 or 1008 is redirected tofacilitator server 1002, facilitator server 1002 interacts with clientmachines 1006-1010 as explained below in reference to FIGS. 2-27.Alternatively, user 2006 may access facilitator server 1002 directly.

Alternative, the order may be completed at the manufacturer servermachine 1012. The consumer may select multiple products in one order.When the consumer has completed selecting products, manufacturer servermachine 1012 sends client order to facilitator server 1002. The consumeris then redirected to facilitator server 1002 for order completion.

Referring now to FIG. 2, user 2006 desires to order a product from amanufacturer. User 2006 enters the world wide address of facilitatorserver machine 1002 into the address bar of the web browser running onuser client machine 1006 to go to the intermediary web site 2102 or,alternatively, user 2006 is redirected to facilitator server machine1002 by manufacturer server machine 1012, as explained above.Facilitator server machine 1002 responds to client machine 1006 withscript language or meta language code representing a series of screens.FIG. 3 shows a high level diagram of the order in which the screens aregenerated. FIG. 4 shows an illustrative embodiment where user clientmachine 1006 is redirected to facilitator server machine 1002 viaanother server machine. FIGS. 5-20 illustrate data flow diagramsrepresenting the inter-operation of client machine 1006 with facilitatorserver machine 1002, including entry, searching and catalog browsing,the shopping cart, and check out.

The product order may be placed on the manufacturer server machine 1012via manufacturer web site 2103 and then sent to facilitator server 1002electronically for distribution. In this case the client machine 1006 isnot redirected to facilitator server 1002 until step 2104 of FIG. 2.

Returning to FIG. 2, once user 2006 has selected a product for purchasein accordance with the data flow diagrams contained in FIGS. 3-20,facilitator server machine 1002 progresses to step to 2104. At step2104, facilitator server machine 1002 determines whether the ordershould be fulfilled by the manufacturer or by fulfiller 2003 or 2010according to the data flow diagrams depicted in FIGS. 21 and 22. FIGS.21 and 22 are explained in detail below. If the order is to be fulfilledby fulfiller 2008 or 2010, facilitator server machine 1002 progresses tostep 2106. If, on the other hand, the order is to be fulfilled by themanufacturer, facilitator server 1002 proceeds to step 2116, wherefulfiller 2008 becomes the manufacturer, and processing is continued asexplained below.

The system is able to make predictive order assignment based on retailerorder history and manufacturer preferences in the system. When ordersare predictively assigned to a fulfiller in step 2105 to a fulfiller,the bidding procedures of step 2106 are bypassed and the fulfiller isnotified of the assigned order in step 2113. The fulfiller has theoption to accept or reject the predictively assigned order.

At step 2106, facilitator server 1002 processes bids for orders fromfulfillers 2008 and 2010 according to the data flow diagram depicted inFIG. 23. FIG. 23 is described in detail below. If no bid is chosen,facilitator server machine 1002 returns to step 2106. However, once abid is chosen, facilitator server machine 1002 progresses to step 2108.At step 2108, facilitator server machine 1002 determines which fulfiller2008 or 2010 shall fulfill the order, according to the data flowdiagrams depicted in FIGS. 24-27. If additional shipping charges arerequired, facilitator server 1002 progresses to step 2110. At step 2110,facilitator server 1002 sends an e-mail to user 2006 informing user 2006of the additional charges. Upon receipt of the e-mail, user 2006 againaccesses client machine 1006, which communicates with facilitator servermachine 1002 at step 2112. User 2006 indicates to facilitator servermachine 1002 at step 2112 whether user 2006 wishes to accept or declinethe order in light of the additional charges. If user 2006 decides tocancel the order, facilitator server machine 1002 progresses to step2114, the order is cancelled, and order processing ceases. However, ifuser 2006 decides to accept the order, facilitator server machine 1002progresses to step 2116. If, at step 2108, a fulfiller 2008 or 2010 waschosen such that no additional shipping charges were required,facilitator server 1002 progresses to 2116.

At step 2116, facilitator server machine 1002 charges the cost of theproduct, and if applicable, shipping charges, to the credit card of user2006, via a credit card processing network, as is well known in the art.After the credit card of user 2006 has been charged, facilitator servermachine 1002 progresses to step 2118. At step 2118, facilitator servermachine 1002 sends an e-mail to the particular fulfiller 2008 that waschosen at step 2108, notifying fulfiller 2008 to ship the orderedproduct or products to user 2006. Fulfiller 2003 accesses fulfillerclient machine 1008, in order to update the order status. Client machine1008 interacts with facilitator server machine 1002 at step 2120indicating that the order has been fulfilled. Upon receivingnotification that the order has been fulfilled, facilitator servermachine 1002 provides a payment to fulfiller 2008 at step 2122, via anyknown method of debt fulfillment.

Turning to FIG. 21, a data diagram depicting the preprocessingfulfillment portion of step 2108 is shown. Facilitator database 2012contains tables of information having records for such things as eachitem ordered by user 2006, the number of orders fulfilled by aparticular manufacturer, whether an item is available for bidding andthe like. At step 2108, facilitator server 1002 begins the fulfillmentpreprocessing at step 4002. Facilitator server 1002 progresses todecision step 4004. At step 4004, facilitator server 1002 determineswhether user 2006 has ordered more than one item. If user 2006 hasordered more than one item, facilitator server 1002 progresses to step4032. At step 4032, facilitator server 1002 bens processing a for/nextloop for every item in the shopping cart of user 2006. Facilitatorserver 1002 determines the items contained in the order from database2012. At step 4034, facilitator server 1002 retrieves the manufacturerfulfillment rule for each item from database 2012. At decision step4036, facilitator server 1002 evaluates whether the manufacturerassociated with current item fulfills 100% of the orders for thatmanufacturer. If the manufacturer is set for 100% fulfilling,facilitator server 1002 progresses to step 4038. At step 4038,facilitator server 1002 assigns fulfillment of the item to themanufacturer in database 2012. Facilitator server 1002 then progressesto step 4040. If on the other hand, the manufacturer associated with thecurrent item is not set for 100% fulfilling, facilitator server 1002progresses from decision step 4036 directly to step 4040. At step 4040,facilitator server 1002 determines whether every item in the shoppingcart of user 2006 has been processed. If all items have not beenprocessed, facilitator server 1002 returns to step 4032 and beginsprocessing for the next item. However, if all items have been processed,facilitator server 1002 progresses from 4040 to decision step 4024.

At step 4024, facilitator server 1002 determines whether any item in theshopping cart of user 2006 is produced by a manufacturer that fulfills100% of its orders, in other words, whether the manufacturer set isempty. If the manufacturer set is not empty, in other Words, there is amanufacturer that fulfills 100% of its orders, then facilitator server1002 progresses to decision step 4026. At step 4026, facilitator server1002 determines whether there are more than one manufacturer of items inthe shopping cart of user 2006, in which such manufactures fulfill 100%of their orders. In other Words, at step 4026, facilitator server 1002determines whether the manufacturer set contains more than onemanufacturer. If so, facilitator server 1002 progresses from set 4026 tostep 4042. At step 4042, facilitator server 1002 separates itemsassigned to a manufacturer according to manufacturer in database 2012.At step 4044, facilitator server 1002 sets all items not assigned to amanufacturer for bidding among fulfillers 2008 and 2010 in database2012. At step 4046 facilitator server 1002 sets the order as amulti-packaged order in database 2012. At step 4050, facilitator server1002 generates information to the user that the order must be amulti-package order. The information generated in step 4050 is output asa script 4052, where 4052 is transmitted from facilitator server 1002 toclient machine 1006 via network 1004. After step 4050, facilitatorserver 1002 exits the fulfillment preprocessing subroutine at step 4054.

Returning to step 4026, if the manufacturer set contains only onemanufacturer, then facilitator server 1002 progresses to decisional step4028. At decisional 4028, facilitator server 1002 determines whether themanufacturer can fulfill the entire order. If the manufacturer can notfulfill the entire order, facilitator server 1002 progresses to step4044, processing from step 4044 through step 4054 then continues asdescribed above. However, if facilitator server 1002 determines at step4028 that the manufacturer can fulfill the entire order the serverprogresses to step 4030. At step 4030, the server sets the order as oneto be fulfilled by the manufacturer in database 2012. After step 4030,facilitator server 1002 exits the fulfillment preprocessing subroutineat step 4054.

Returning to step 4024, if the manufacturer set is empty, in otherwords, no manufacturer fulfils 100% of orders for its items, thenfacilitator server 1002 progresses to step 4012. At step 4012,facilitator server 1002 determines all manufactures that can fulfill theentire order. At step 4014, facilitator server 1002 enters a for/nextloop for each of the manufacturers found that can fulfill the entireorder. At step 4016, facilitator server 1002 determines whether thecurrent manufacturer should fulfill the order according to the datadiagram shown in FIG. 22, as described below. At decision step 4018,facilitator server 1002 determines whether the order is to be fulfilledby the current manufacturer. If so, facilitator server 1002 progressesto 4022. At step 4022, facilitator server 1002 sends an email message tothe current manufacturer. After 4022, facilitator server 1002 exits thefulfillment preprocessing subroutine at step 4054. However, if at step4018 facilitator server 1002 determines the order is not to be fulfilledby the current manufacturer, then facilitator server 1002 progresses tostep 4020. At step 4020, facilitator server 1002 determines whether allof the found manufacturers have been processed, and if not, facilitatorserver 1002 returns to step 4014. On the other hand, if facilitatorserver 1002 determines at step 4020 that all manufacturers have beenprocessed, then facilitator server 1002 proceeds to step 4010.

At step 4010, facilitator server 1002 sets the order as available forbidding in database 2012. After step 4010, facilitator server 1002 exitsthe fulfillment preprocessing subroutine at step 4054.

Returning to decision step 4004, if facilitator server 1002 determinesthat the shopping cart for user 2006 contains only one item, thenfacilitator server 1007 progresses to step 4006. At step 4006,facilitator server 1002 determines whether the order should be fulfilledby the manufacturer according to the data flow diagram shown in FIG. 22,as described below. At decision step 4008, facilitator server 1002determines whether the order is to be fulfilled by the manufacturer. Ifso, then facilitator server 1002 progresses to step 4022 and processingcontinues through 4022 and 4054 as described above. If however, at step4008, facilitator server 1002 determines the order is not to befulfilled by the manufacturer, then facilitator server 1002 proceeds tostep 4010 and processing continues as described above through 4010 and4054.

Referring now to FIG. 22, a data diagram is shown depicting a subroutineto determine whether a manufacturer should fulfill an order. Facilitatorserver 1002 enters the subroutine at step 4102. At step 4104,facilitator server 1002 extracts variables representing the desiredfulfillment percentage for the current manufacturer, the total number oforders fulfilled by the current manufacturer, and the total number oforders for items from the current manufacturer from database 2012. Atdecision step 4106, facilitator server 1002 determines whether the totalnumber of orders fulfilled by the manufacturer divided by the totalnumber of orders for the manufacturer is less than the desiredfulfillment percentage for the manufacturer. If so, then facilitatorserver 1002 proceeds to step 4108. At step 4108, facilitator server 1002sets the manufacturer as the fulfiller of the current order in database2012. At step 4110, facilitator server 1002 updates the variablesrepresenting the total orders fulfilled by the current manufacturer, andthe total order for the current manufacturer in database 2012. Forexample, each of these variables is incremented by one in database 2012.Returning to step 4106, if the percentage of total orders fulfilled forthe current manufacturer is greater than the desired fulfillmentpercentage for the current manufacturer, then facilitator server 1002proceeds to step 4112. At step 4112, facilitator server 1002 updates thetotal orders variable for the current manufacturer in database 2012. Forexample, the total orders variable is incremented by one Following step4110 and/or 4112, facilitator server 1002 exits the subroutine at step4114.

Turning to FIG. 23, the bidding procedure of step 2106 is shown ingreater detail. As described above, fulfiller 2008 enters the world wideweb address of facilitator server 1002 into the web browser of fulfillerclient machine 1008, at step 4204. Facilitator server machine 1002responds at step 4202 by generating a log-in screen 4206, which isdisplayed on machine 1008. Fulfiller 2008 enters his user name andpassword into the log-in screen, and this user name and password aretransmitted to facilitator server machine 1002 at step 4208. At step4208, facilitator server machine 1002 sets a cookie on client machine1008, as is known in the art. Furthermore, at step 4208, facilitatorserver machine 1002 determines whether or not the user name and passwordare valid. If the user name and password are not valid, facilitatorserver 1002 returns to step 4202 in order to allow fulfiller 2008 to trylogging in again. However, if the user name and password are correct,then facilitator server machine 1002 proceeds to step 4210. At step4210, facilitator server machine 1002 generates the main administrationscreen 4212, which is displayed on client machine 1008. Although notshown FIG. 23, all screens except log in screen 4206 include an optionfor fulfiller 2008 to log out of the system. If fulfiller 2008 choosesthe log out option on any screen, facilitator server machine 1002proceeds to step 4236, and generates log out screen 4234, which ends thecurrent session of fulfiller 2008.

Main screen 4212 provides fulfiller 2008 with an option to view hisCurrent orders, and with an option to view open bids. If fulfiller 2008chooses the option to show his current orders, facilitator servermachine 1002 proceeds to step 4214. At step 4214, facilitator server1002 generates an orders screen 4216, which is displayed on clientmachine 1008. Orders screen 4216 provides fulfiller 2008 with an optionto return to the main administration screen, and with an option to showthe details of selected order. If fulfiller 2008 chooses the option toshow the details of an order, facilitator server 1002 proceeds to step4218. At step 4218, facilitator server 1002 generates order detailsscreen 4220, which is displayed on client 1008. Order detail 4220provides fulfiller 2008 with the option to update order status or toreturn to the main administration screen. If fulfiller 2008 chooses theoption to update the order status, facilitator server 1002 proceeds tostep 4222. At step 4222, facilitator server 1002 accesses database 2012in order to update the status of the orders for fulfiller 2008.Facilitator server 1002 then proceeds to step 4218, which is describedabove. If fulfiller 2008 selects the option to return to the mainadministration screen 4210 from order details screen 4220, facilitatorserver 1002 proceeds to step 4210 and continues as described above.

If fulfiller 2008 selects the option to show open bids from screen 4212,facilitator server 1002 proceeds to step 4224. At step 4224, facilitatorserver 1002 generates choose bid screen 4226, which is displayed onclient 1008. Fulfiller 2008 selects a specific bid from those includedin 4226. This selection causes facilitator server 1002 to proceed tostep 4228. At step 4228, facilitator server 1002 generates bidinformation screen 4230, which is displayed on client machine 1008. Iffulfiller 2008 chooses to place a bid, facilitator server 1002 proceedsto step 4232. At step 4232, facilitator server 1002 updates the bidinformation in data base 2012. Facilitator server 1002 then proceeds tostep 4228, which performs as described above. Note that the term “bid”,as used herein, is not a matter of price, such as one would expect in anauction, but rather, herein the term “bid” merely indicates thatfulfiller 2008 is willing to fulfill an order for an item. The cost forthe item that user 2006 will pay was already assigned prior to check outstep 2104 shown in FIG. 2, as described above.

After fulfiller 2008 has finished a bidding session, he selects the logout option from any of the screens described above, which causesfacilitator server machine 1002 to proceed to step 4236. At step 4236,facilitator server 1002 generates log out screen 4234, which isdisplayed on client 1008, and the current session ends.

Alternatively the fulfiller 2008 can see orders for bidding and placebids on order through the server software application for the servernetwork. A software application may be run on fulfiller client machine1008 to allow a fulfiller to accomplish all tasks set forth in FIGS.5-20 similar to using the web pages.

Turning now to FIG. 24, the subroutine for resolving bids, in otherwords, the subroutine for deciding which fulfiller shall fulfill anorder, is shown. At step 4302, facilitator server machine 1002 initiatesthe subroutine, for example, by use of the cron demon. The cron demon isset up to run the subroutine at a particular time everyday, when it isexpected that bids will have been placed for all orders, for example,3:00 A.M. At step 4304, facilitator server 1002 begins a for/next loopfor every order which has a status equal to “bidding”. At step 4306facilitator server machine 1002 initializes and variable “i” to equal“zero” where “i” represents the number of the current item in thecurrent order. At step 4307, variable “i” is incremented by one.

At step 4308, facilitator server 1002 finds all i-tuples of bidssatisfying an order, as shown in detail in FIG. 26. All i-tuple is alist of fulfillers having “i” elements, where each element has areference to order items that each retailer wishes to fulfill. Thatdecisional step 4310, facilitator server 1002 determines whether anyi-tuples have been found. If no i-tuples have been found, facilitatorserver 1002 proceeds to decision step 4311. At step 4312, facilitatorserver 1002 determines whether the variable “i” is greater than or equalto the total number of items in the order. If “i” is less than the totalitems in the order, facilitator server 1002 returns to step 4307, andproceeds as described above. If “i” is not less than the total number ofitems in the order, facilitator server 1002 proceeds to step 4314. Atstep 4314, facilitator server 1002 leaves the current order open forbidding and proceeds to step 4336. At step 4336, facilitator server 1002determines whether the current order is the last order with a billingstatus equal to “bidding”. If so, then all orders have been completed,and facilitator server 1002 exits this subroutine at step 4338. However,if all orders have not been processed facilitator server 1002 returns tostep 4304, and progresses as described above. Returning to step 4310, ifone or more i-tuples were found, then facilitator server 1002 proceedsto decisional step 4316. At step 4316, facilitator server 1002determines whether more than one i-tuple was found. If more than one isfound, facilitator server 1002 proceeds to step 4334. At step 4334,facilitator server 1002 chooses the i-tuples with the minimal distance,shipping cost, and tax cost.

However, if there is only one i-tuple, facilitator server 1002 proceedsto step 4318. Also, if at step 4316 facilitator server 1002 determinedthat only one i-triple was found, facilitator server 1002 proceeds tostep 4318.

At step 4318, facilitator server 1002 determines whether there areshipping costs which were not communicated to user 2006 when user 2006checked out step 2104. If there are no additional shipping costs, then astep 4324 facilitator server 1002 determines whether there is more thanone retailer fulfilling the this order (the number of packages in theorder “i”). If there is only one package i=1, facilitator server 1002proceeds to step 4328. At step 4328, facilitator server 1002 marks thecurrent order as waiting for payment confirmation, notifies the systemadministrator, and updates database 2012. Facilitator server 1002 thenproceed to step 4336. Processing continues at step 4336 as describedabove. If a step 4324 facilitator server 1002 determines that variable“i” is greater than one, then facilitator server 1002 proceeds to step4326. At step 4326, facilitator server 1002 determines whether thecurrent order is approved for multi-package delivery. If so, thenfacilitator server 1002 proceeds to step 4328, and processing continuesas described above. If not, then facilitator server 1002 proceeds tostep 4320. Also, if in step 4318 facilitator server 1002 determined thatadditional shipping costs were greater than zero, facilitator server1002 proceeds to step 4320.

At step 4320, facilitator server 1002 generates a random password forthe current order, and marks the order as “waiting for customeracceptance”. Furthermore, at step 4320, the random password and the factthat the order is waiting for acceptance are indicated in database 2012.At step 4322, facilitator server 1002 communicates with user client 1006to notify user 2006 of the random password and the fact that the ordermust be accepted before being shipped. After step 4322, facilitatorserver 1002 proceeds to step 4336 and processing continues as describedabove. When user 2006 is notified at step 4322, user 2006 accepts ordeclines the order according to the flow chart shown in FIG. 27.

A manufacturer may elect to distribute income to fulfillers that wereunsuccessful in the bidding process. In such a case, the facilitatorserver machine 1002 may be programmed based on criteria established bythe manufacturer to give some of the income received from a product saleto fulfillers that bid on the product order but did not actually fulfillany of the product order. This is to reward those fulfillers, forexample, that have in stock products similar to, but not the same as,the ordered product. The intermediary machine 1002 may be programmed toprovide such income distribution for only certain or all products in itmanufacturer product line and may be programmed to set an incomedistribution percentage for each product in the manufacturer productline.

The systems and methods disclosed herein provide an online facilitatedshopping service which may be useful for small- and medium-sizedbusinesses or other-sized businesses. The shopping service may be usefulin the hobby industry, for example. Use of the shopping service is nowexplained in more detail by an exemplary scenario relating to a hobbyistwishing to purchase a product from a manufacturer over the Internet.

There are different ways that a hobbyist may place a product order for aproduct of a manufacturer. First, the manufacturer may offer thehobbyist an option to place an order for the product on a manufacturerserver machine of the manufacturer. If the manufacturer offers thisoption, the hobbyist may go to the web site of the manufacturer andplace the product order. The product order is then sent, unbeknownst tothe hobbyist, from the manufacturer server machine to the facilitatorserver machine of the shopping service for selection of a fulfiller.Second, the web site of the manufacturer may have a link to thefacilitator server machine of the shopping service. If so, the hobbyistmay go to the manufacturer web site and select the link to access theshopping service where the hobbyist can place the product order. Third,the hobbyist may bypass the manufacturer web site altogether and godirectly to the shopping service web site to place the product order.

The server machine of the shopping service (i.e., the facilitator servermachine) is configured to allow the hobbyist to place a product orderthereon when, for example, the hobbyist arrives at the shopping serviceweb site. One or more manufacturer product catalogs are stored, on theserver machine of the shopping service to be viewed by the hobbyist.Each product catalog contains a list of products supplied by amanufacturer. The hobbyist may select one of the product catalogs toview. The hobbyist may then place a product order for one or moreproducts listed in the selected product catalog.

Once the shopping service has received a product order, the shoppingservice determines a fulfiller to provide the product ordered by thehobbyist. Based on selection criteria established by the manufacturer ofthe ordered product, the shopping service may select the manufacturer ofthe product to fulfill the product order, a particular hobby shop tofulfill the product order, or offer the product order up for bid todetermine which hobby shop may fulfill the product order. If the productorder contains an order for more than one product, the shopping servicemay select any combination of fulfillers based on the manufacturer'sselection criteria.

If the shopping service selects bidding as a method for selecting ahobby shop to fulfill the product order, the shopping service posts theproduct order on the shopping service web site for hobby shops to view.This product order may be one of many product orders posted on theshopping service web site. Those hobby shops interested in fulfillingthe product order may bid on the product order. A bid communicates thata hobby shop is interested in fulfilling the product order for thepredetermined price of the product(s) in the product order along withany additional shipping fees and tax costs. Based again on themanufacturer's selection criteria, the shopping service selects a hobbyshop to the product order. The shopping service may select more than onehobby shop to fulfill the product order when, for example, the productorder contains more than one product. The shopping service awards bidsfor product orders at predetermined time intervals such as daily at3:00.

The shopping service offers each selected hobby shop the opportunity tofulfill the product order. The hobby shop then has the option to acceptor reject the offer to fulfill the product order. If accepted, the hobbyshop supplies the product(s) in the product order to the hobbyist.

A manufacturer may elect to distribute income to hobby shops that wereunsuccessful in the bidding process. In such a case, the server machineof the shopping service (i.e., the facilitator server machine) isprogrammed based on criteria established by the manufacturer to givesome of the income received from a product sale to hobby shoos that bidon the product order but did not actually fulfill any of the productorder. This is to reward hobby shops that may have in stock productssimilar to, but not the same as, the ordered product. For example, themanufacturer may make a widget in several different models. The productorder may have been for a particular model of the widget. However, someof the hobby shops that bid on the product order may have had othermodels of the widget in stock but not the particular model ordered andso did not become the fulfiller. The manufacturer may nevertheless wishto reward those hobby shops by providing a percentage of the incomereceived from the sale of the widget to those hobby shops.

Those skilled in the art will appreciate that modifications may be madeto the embodiment described above without departing from the scope ofthe present disclosure. For example, the test to determine whether anorder should be fulfilled by a manufacturer could be based on criteriaother than the percentage of orders the manufacturer has fulfilled. Forfurther example, the decision of which fulfiller (distributor orretailer) fills an order could be based on factors other than geographyand additional cost, such as preferences a manufacturer has for certainretailers or distributors. Other modifications that may be made withoutdeparting from the scope of the present disclosure will be apparent tothose skilled in the art. Also, although the disclosure is disclosed asa method and apparatus for processing product orders, those skilled inthe art will appreciate that it has other applications as well.

1-20. (canceled)
 21. A method performed by a computer system, the methodcomprising: presenting to a customer an offer for the customer topurchase one or more products; receiving a product order from thecustomer for the one or more products; receiving from one or morefulfillers one or more offers to fulfill the received product order,wherein the received one or more offers to fulfill indicate an agreementby the one or more fulfillers to fulfill the received product order; andselecting one of the fulfillers to fulfill the product order based atleast in part on the received offers to fulfill.
 22. The method of claim21 wherein selecting one of the fulfillers to fulfill the product orderis based on one or more criteria specified by a manufacturer of theordered one or more products.
 23. The method of claim 21 whereinselecting one of the fulfillers comprises identifying a fulfiller fromthe one or more fulfillers that is located closest to the customer. 24.The method of claim 21 wherein the selecting one of the fulfillerscomprises comparing costs associated with each fulfiller to fulfill theproduct order.
 25. The method of claim 21 further comprisingelectronically notifying the selected fulfiller that the selectedfulfiller has been selected to fulfill the product order.
 26. The methodof claim 21 further comprising, prior to receiving from one or morefulfillers one or more offers to fulfill the received product order:assigning a price that the customer will pay for the one or more orderedproducts; completing the received order including a check-out process;posting the completed product order at a location accessible to the oneor more fulfillers; and waiting a predetermined period of time to enablethe one or more fulfillers to view the posted product order.
 27. Themethod of claim 26 wherein received offers to fulfill are independent ofthe assigned price.
 28. The method of claim 21 wherein receiving the oneor more offers to fulfill comprises: enabling the one or more fulfillersto access a website using a log-in process that includes validating ausername and a password for each fulfiller; in response to validatingthe user name and password, enabling the one or more fulfillers withvalidated user name and password to view the product order and one ormore additional product orders available for fulfilling; and enablingthe one or more fulfillers with validated user name and password tooffer to fulfill the product order or the one or more additional productorders.
 29. The method of claim 21 wherein selecting one of thefulfillers to fulfill the product order comprises selecting a defaultfulfiller to fulfill the product order.
 30. The method of claim 21further comprising: receiving the product order for more than one of theproducts; selecting more than one of the fulfillers to fulfill thereceived product order for the more than one product, each selectedfulfiller fulfilling at least one product from the product order;identifying additional shipping costs associated with selecting morethan one fulfiller to fulfill the received product order; notifying thecustomer of the identified additional shipping costs; enabling thecustomer to send a request to cancel the product order in response toreceiving the notification; and canceling the product order if therequest to cancel the purchase order is received in response to thenotification of the additional shipping costs.
 31. A method performed bya computer system, the method comprising: presenting to a customer anoffer for the customer to purchase one or more products of amanufacturer; receiving a product order from the customer for the one ormore products of the manufacturer; based on one or more criteriaspecified by the manufacturer, determining whether to (i) select themanufacturer to fulfill the received product order, or (ii) select oneor more fulfillers, other than the manufacturer, to fulfill the receivedproduct order; if the one or more fulfillers are determined to beselected, then: receiving from the one or more fulfillers one or moreoffers to fulfill the received product order, wherein the received oneor more offers to fulfill indicate an agreement by the one or morefulfillers to fulfill the received product order; and selecting one ofthe fulfillers to fulfill the product order based at least in part onthe received offers to fulfill.
 32. The method of claim 31 whereinselecting one of the fulfillers to fulfill the product order is based onone or more criteria specified by the manufacturer of the ordered one ormore products.
 33. The method of claim 31 wherein selecting one of thefulfillers comprises identifying a fulfiller from the one or morefulfillers that is located closest to the customer.
 34. The method ofclaim 31 wherein the selecting one of the fulfillers comprises comparingcosts associated with each fulfiller to fulfill the product order. 35.The method of claim 31 further comprising electronically notifying theselected fulfiller that the selected fulfiller has been selected tofulfill the product order.
 36. The method of claim 31 furthercomprising, prior to receiving from one or more fulfillers one or moreoffers to fulfill the received product order: assigning a price that thecustomer will pay for the one or more ordered products; completing thereceived order including a check-out process; posting the completedproduct order at a location accessible to the one or more fulfillers;and waiting a predetermined period of time to enable the one or morefulfillers to view the posted product order.
 37. The method of claim 36wherein received offers to fulfill are independent of the assignedprice.
 38. The method of claim 31 wherein receiving the one or moreoffers to fulfill comprises: enabling the one or more fulfillers toaccess a website using a log-in process that includes validating ausername and a password for each fulfiller; in response to validatingthe user name and password, enabling the one or more fulfillers withvalidated user name and password to view the product order and one ormore additional product orders available for fulfilling; and enablingthe one or more fulfillers with validated user name and password tooffer to fulfill the product order or the one or more additional productorders.
 39. The method of claim 31 wherein selecting one of thefulfillers to fulfill the product order comprises selecting a defaultfulfiller to fulfill the product order.